邮件服务器的解决方案

1. 解决方案

  • 方案一:腾讯企业邮箱(免费,但有人数限制)需要有自己的域名,设置MX记录
  • 方案二:使用iRedmail,需要有公网的CentOS主机

2. 基础知识

  • 发邮件协议:SMTP(Simple Mail Transfer Protocol)端口25
  • 收邮件协议:POP3(Post Office Protocol 3)端口110
  • 收邮件协议:IMAP,优于POP3,可以根据用户需求指定下载删除邮件,而不是下载全部,端口143
  • MTA:Mail Transfer Agent 邮件传输代理,发邮件的(sendmail、postfix)
  • MRA:Mail Retravial Agent 邮件检索代理,收邮件的(dovecot)
  • MDA:Mail Delivery Agent 邮件投递代理,帮助投递邮件(maildrop)
  • MUA:Mail User Agent 邮件用户代理,个人主机上的收发邮件的代理软件(outlook、foxmail)

3. iredmail安装和使用

3.1. iredmail介绍

iRedMail作为一个开源项目,基于GPL(v2)协议发布。官网www.iredmail.org。如果国内不能访问,可以通过www.iredmail.com访问。

iRedMail核心组件及其对应的功能:

  • Postfix:SMTP服务器
  • Dovecot:POP3/IMAP/Managersieve服务器
  • Apache:Web服务器
  • MySQL:用于存储其它程序的数据,也用于存储邮件账号
  • OpenLDAP:用于存储邮件账号
  • Policyd:Postfix policy server
  • Amavisd:提供DKIM签名及校验、SPF校验、为外发邮件添加”免责声明“内容,并调用SpamAssassin做基于邮件内容的垃圾扫描,调用ClamAV做邮件病毒扫描
  • Roundcube:Webmail
  • Awstats:用于分析Apache和Postfix日志文件,并生成简单的图表
  • Fail2ban:扫描各种日志文件,发现多次密码错误等情况时可自动封禁对方IP一段时间。用于保证服务器安全
  • iRedadmin:基于web的邮件账号管理程序

声明:做以下实验,需要有独立域名,和带公网的服务器。本次实验以域名theshu.wang作为演示

3.2. iRedMail的安装

3.2.1. 设定hostname

1
2
3
4
5
# hostname mail.theshu.wang
# vim /etc/hosts
#<==在下面加入一行
127.0.0.1 mail.theshu.wang

3.2.2. 配置DNS解析

  • MX 记录 mail.theshu.wang
  • A 记录 把mail.theshu.wang 指向一个IP,这个IP就是我们要做邮件服务器的IP。

3.2.3. 下载并安装iRedMail

下载:

1
2
3
# cd /usr/local/src/
# wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.7.tar.bz2
#<==可能wget的方式下载不成功,可以用浏览器下载下来,再上传到服务器上

如果我们所用的服务器是国内的服务器,那么安装前需要做一些处理:

1
2
3
4
5
6
7
8
# tar jxvf iRedMail-0.9.7.tar.bz2
# cd iRedMail-0.9.7/pkgs
# vim get_all.sh
#<==把https://mirrors.fedoraproject.org改为http://mirrors.fedoraproject.org
# sed -i 's/iredmail.org/106.187.51.47/g' get_all.sh
# cd ..
# sh iRedMail.sh

这个过程需要很久,耐心等待。有一步是问我们是否打开防火墙,建议大家不要打开:

1
2
Would you like to use firewall rules provided by iRedMail now?
<Question>File:/etc/sysconfig/iptables, with SSHD port: 22.[Y|n] n

安装成功后会有这样的显示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
********************************************************************
* URLs of installed web applications:
*
* - Roundcube webmail: httpS://mail.theshu.wang/mail/
*
* - Web admin panel (iRedAdmin): httpS://mail.theshu.wang/iredadmin/
*
* You can login to above links with below credential:
*
* - Username: postmaster@theshu.wang
* - Password: 123456
*
*
********************************************************************
* Congratulations, mail server setup completed successfully. Please
* read below file for more information:
*
* - /usr/local/src/iRedMail-0.9.7/iRedMail.tips
*
* And it's sent to your mail account postmaster@theshu.wang.
*
********************* WARNING **************************************
*
* Please reboot your system to enable all mail services.
*
********************************************************************

3.3. iRedMail的使用

安装完后,依次启动下面的服务。运行命令如下:for s in httpd iredapd amavisd clamd postfix dovecot cbpolicyd spamassassin clamd.amavisd sa slauthd fail2ban; do /etc/init.d/$s restart; done

启动所有服务后,登陆iredadmin创建用户,并登陆Roundxube系统测试收发邮件。

在该步骤中,你可能会遇到这样的问题:发邮件正常,收邮件非常慢,需要等十分钟之久,查看maillog发现这样的提示:Recipient address rejected: Greylisting in effect, please come bask later.。这是因为Policyd服务造成的。解决办法如下:

1
# vim /etc/policyd/cluebringer.conf

找到Greylisting这个模块,在前面加#,然后重启dovecot/postfix/cbpolicyd服务。

1
# service dovecot restart; service postfix restart; service cbpolicyd restart

0%